<%

Function torneio_novo_grupo (conexao, nome, id_torneio, fase, nivel, anterior, posicao, criterio, tipo, clubes, total_clubes, turnos)

		DIM i, j, temporada

'criando o grupo
		str = "INSERT into torneios_grupos "
		str = str & "(id_torneio, fase, nivel, anterior, posicao, nome, criterio, tipo) "
		str = str & "VALUES ('" & id_torneio &"', "
		str = str & "'" & fase & "', "
		str = str & "'" & nivel & "', "
		str = str & "'" & anterior & "', "
		str = str & "'" & posicao & "', "
		str = str & "'" & sql_cod(nome) & "', "
		str = str & "'" & criterio & "', "
		str = str & "'" & tipo & "')"		
		Set rsI = conexao.Execute(str)

		str = "Select id FROM torneios_grupos order by id desc"
    		Set rs = conexao.Execute(str)	
		
		id_grupo = rs("id")
		
		temporada = torneio_get_temporada(conexao, id_torneio)

		
		erro = erro + torneio_novo_grupo_lista(conexao, id_torneio, id_grupo, total_clubes, clubes, fase, nivel)
		
		if tipo=1 then 
				erro = erro + torneio_novo_grupo_jogos_liga(conexao, id_grupo, total_clubes, clubes, turnos, temporada)
		else
				erro = erro + torneio_novo_grupo_jogos_copa(conexao, id_grupo, total_clubes, clubes, turnos, temporada)
		end if
		
'retornado id
		if erro=0 then
			torneio_novo_grupo = id_grupo
		else
			torneio_novo_grupo = 0
			str = "DELETE FROM torneios_grupos where id="&id_grupo
		end if
		
		
End Function

Function torneio_novo_grupo_lista(conexao, id_torneio, id_grupo, total_clubes, clubes, fase, nivel)

		DIM i, j

'criando a lista classificatoria	
		for i=0 to total_clubes-1	
		
				clube = clubes(i)
		
				if clube<=0 then clube = (i+1)*-1
				clubes(i) = clube
				
				vantagem = i+1
		
				str = "INSERT into torneios_lista "
				str = str & "(id_grupo, id_clube, posicao, posicao_anterior, vantagem) "
				str = str & "VALUES ('" & id_grupo &"', "
				str = str & "'" & clube & "', "	
				str = str & "'" & vantagem & "', "	
				str = str & "'" & vantagem & "', "	
				str = str & "'" & vantagem & "')"				
				Set rsI = conexao.Execute(str)		

		erro = erro + torneio_novo_grupo_clubes(conexao, id_torneio, clube, fase, nivel, vantagem)
		
		next
		
		torneio_novo_grupo_lista=0

End Function

Function torneio_novo_grupo_clubes(conexao, id_torneio, clube, fase, nivel, vantagem)

'criando a lista de clube

				if clube>0 then

						str = "Select id_clube, id_torneio FROM torneios_clubes where id_clube="&clube&" AND id_torneio="&id_torneio
   						Set rs = conexao.Execute(str)		

						if rs.eof then

								str = "INSERT into torneios_clubes "
								str = str & "(id_torneio, id_clube, fase, nivel, posicao, vantagem) "
								str = str & "VALUES ('" & id_torneio &"', "
								str = str & "'" & clube & "', "		
								str = str & "'" & fase & "', "		
								str = str & "'" & nivel & "', "		
								str = str & "'" & vantagem & "', "
								str = str & "'" & vantagem & "')"		
								Set rsI = conexao.Execute(str)
								
						else
						
								str = "UPDATE torneios_clubes SET "
								str = str & "fase='"&fase&"', "
								str = str & "nivel='"&nivel&"', "
								str = str & "vantagem='"&vantagem&"' "
								str = str & " WHERE id_clube="&clube&" AND id_torneio="&id_torneio
								Set rsI = conexao.Execute(str)
						
						End If


				End If
		

	
		torneio_novo_grupo_clubes=0

End Function

Function torneio_editar_grupo_clubes(conexao, id_torneio, clube, fase, nivel, vantagem)

			if clube>0 then

						str = "Select id_clube, id_torneio FROM torneios_clubes where id_clube="&clube&" AND id_torneio="&id_torneio
   						Set rs = conexao.Execute(str)		

						if rs.eof then
						
						   erro = torneio_novo_grupo_clubes(conexao, id_torneio, clube, fase, nivel, vantagem)
						
						End If
						
			End If

End Function

Function torneio_novo_grupo_jogos_liga(conexao, id_grupo, total_clubes, clubes, turnos, temporada)


		DIM i, j, k
'criando jogos
		j=0	
		rodada=0
		for i=1 to turnos
		
				p=1
				s=2
				if i mod 2 = 0 then
					p=2
					s=1
				End If

				str = "Select * FROM estrutura where ndetimes="&total_clubes&" order by rodada asc, time1 asc"
				Set rs = conexao_geral.Execute(str)
				
				Do while not rs.eof
				
						if rodada<>rs("rodada") then
								rodada = rs("rodada")
								j=j+1
						End If
				
						erro = erro +  torneio_novo_jogo(conexao, id_grupo, clubes(rs("time"&p)-1), clubes(rs("time"&s)-1), j, 0, temporada)

				rs.MoveNext
				Loop
				
		next
		
		torneio_novo_grupo_jogos_liga=0

End Function

Function torneio_novo_grupo_jogos_copa(conexao, id_grupo, total_clubes, clubes, turnos, temporada)

		DIM j,i,m,k,p

		aux = int(log(total_clubes)/0.693147180559945)
		resto = (total_clubes-(2^aux))*2
		fase2 = total_clubes-resto
		
		j=0
		p=0
		m=0
		if turnos mod 2 = 0 then m=1
		
		for k=1 to turnos
			
				for i=1 to resto/2
						
						p=1
						j=k		
				
						clube1=clubes(total_clubes-resto-1+i)
						clube2=clubes(total_clubes-i)
						if k mod 2 = m then
							caux = clube1
							clube1 = clube2
							clube2=caux
						End IF
						
						erro = erro +  torneio_novo_jogo(conexao, id_grupo, clube1, clube2, k, 0, temporada)
						
						if k=turnos then clubes(total_clubes-resto-1+i) = (10000+i)*-1
						
				next
						
		next
		
		for k=1 to turnos
		
				j=j+1
				
		
				for i=1 to (2^aux)/2
				
						clube1=clubes(i-1)
						clube2=clubes((2^aux)-i)				
				
						if p=1 and k=1 then
								if clube1>0 then torneio_lista_aumentar_fase  conexao, id_grupo, clube1
								if clube2>0 then torneio_lista_aumentar_fase  conexao, id_grupo, clube2
						End If
				
						if k mod 2 = m then
							caux = clube1
							clube1 = clube2
							clube2=caux
						End If
						
						erro = erro +  torneio_novo_jogo(conexao, id_grupo, clube1, clube2, j, 0, temporada)
						
				next
						
		next
		
		i=(2^aux)/2
		
		Do while i>=2 
		
				for k=1 to turnos
				
				j=j+1
				
						for  t=1 to i/2
						
								clube1=(10000*int((j-1)/turnos)+t)*-1
								clube2=(10000*int((j-1)/turnos)-t+i+1)*-1
								if k mod 2 = m then
									caux = clube1
									clube1 = clube2
									clube2=caux
								End If
								
								erro = erro +  torneio_novo_jogo(conexao, id_grupo, clube1, clube2, j, 0, temporada)

						next
								
				next
				
				i=i/2
				
		Loop
		
		
		
		
		

		
		torneio_novo_grupo_jogos_copa=0

End Function


%>
